﻿namespace ReflexTérkép
{
    using System;

    /// <summary>
    /// Contains methods for logging messages.
    /// </summary>
    public interface ILogger
    {
        /// <summary>
        /// Logs messages.
        /// </summary>
        /// <param name="logRank">Log level.</param>
        /// <param name="format">Log message format.</param>
        /// <param name="args">Log message arguments.</param>
        void Log(LogRank logRank, string format, params object[] args);

        /// <summary>
        /// Logs exception messages.
        /// </summary>
        /// <param name="logRank">Log level.</param>
        /// <param name="exception">Exception being logged.</param>
        /// <param name="format">Log message format.</param>
        /// <param name="args">Log message arguments.</param>
        void Log(LogRank logRank, Exception exception, string format, params object[] args);
    }
}